$(function(){
	//maxDialog设置根据top窗口的maxModalIndex变量来控制打开的层次关系
	$.MaxinitZindex = function(){
		$.setMaxDialogIndex(top.maxModalIndex++);
	}
	//所有表格添加table-striped table-condensed table-hover样式类
	
	$("table.table.table-bordered").each(function(){
		$(this).addClass("table-striped");
		$(this).addClass("table-condensed");
		$(this).addClass("table-hover");
	})
	// 点击行添加tractive类样式
	$("body").on('click','table.table tbody tr td input',function(){
		var tr = $(this).parents('tr');
		tr.addClass('tractive');
		var otherTr = tr.siblings();
		otherTr.each(function(){
			var checkbox = $(this).find("td:first input[type='checkbox']");
			if(checkbox.prop("checked")){
				return;
			}else{
				$(this).removeClass("tractive");
			}
		});
	});
	
	$("body").on('click','table.table tbody tr:not(".tr-panel")',function(){
		$(this).addClass('tractive');
		var otherTr = $(this).siblings();
		otherTr.each(function(){
			var checkbox = $(this).find("td:first input[type='checkbox']");
			if(checkbox.prop("checked")){
				return;
			}else{
				$(this).removeClass("tractive");
			}
		});
	});
	
	//查询
	$(".searchBtn").on("click",function(event){
		var ev = event || window.event;
		ev.stopPropagation();
		ev.preventDefault();
		/*alert($("#testForm").serialize());*/
	})
	//输入框回车查询
	$(".searchVal").on("keydown",function(event){
		var ev = event || window.event;
		/*ev.stopPropagation();
		ev.preventDefault();*/
		var code = ev.keyCode || ev.which;
		if(code == "13"){
			$(this).parents(".maintop").find(".searchBtn").trigger("click");
		}
	})
	//重置
	$(".searchRst").on("click",function(event){
		var ev = event || window.event;
		ev.stopPropagation();
		ev.preventDefault();
		var par = $(this).parents(".maintop");
		//重置input文本框
		par.find("input[type='text']").each(function(){
			$(this).val("");
		});
		
		/*
		 * //重置单选框,多选框
		 * par.find("input[type='radio'],input[type='checkbox']").each(function(){
		 */
		//重置多选框
		par.find("input[type='radio'],input[type='checkbox']").each(function(){
			var mark = $(this).attr("checked")?true:false
			$(this).prop("checked",mark);
		});
		
		//重置select框
		par.find("select").each(function(){
			var val = $(this).val(); 
			if( val != "-1" || val != ""){
				$("option",this).each(function(){
					$(this).removeAttr("selected");
					if($(this).val() == "" || $(this).val() == "-1"){
						$(this).attr("selected","selected");
					}
				});
			}
		});
		//收起更多条件
		par.find(".searchDialog").slideUp(function(){
			par.find(".glyphicon").removeClass("glyphicon-minus");
			//重置页面布局
			resizeLayOut();
		});
	});
	
	//更多条件,展开折叠更过条件框
	$(".searchMore").on("click",function(event){
		var ev = event || window.event;
		ev.stopPropagation();
		ev.preventDefault();
		var _this = $(this);
		/*$(this).parents(".searchBox").children(".searchDialog").stop(true,false).slideToggle(function(){
			_this.children(".glyphicon").stop(true,false).toggleClass("glyphicon-minus");
			//重置页面布局
			resizeLayOut();
		});*/
		$(this).parents(".maintop").find(".searchDialog").stop(true,false).slideToggle(function(){
			_this.children(".glyphicon").stop(true,false).toggleClass("glyphicon-minus");
			//重置页面布局
			resizeLayOut();
		});
	});
	
	//页面加载时初始化.mainLay的高度
	$(window).on("load",function(){
		$(".mainLay").height(parent.iframe_h - 12);
	}).on("resize",function(){
		$(".mainLay").height(parent.iframe_h - 12);
	});
	
	
	//双击选中带有 checkbox 的行，并添加选中类样式
	/*$("body").on("dblclick","table tr",function(e){
		var ev = e || window.event ;
		ev.stopPropagation();
		ev.preventDefault();
		var cb = $("td:first input[type='checkbox']",$(this));
		if(cb.length && cb.prop("checked")){
			cb.click();
			$(this).removeClass("active");
		}else if(cb.length && !cb.prop("checked")){
			cb.click();
			$(this).addClass("active");
		}
	});*/
	
	
	//全选
	/*$("body").on("change","table thead th:first input[type='checkbox']",function(){
		checkAll(this);
		var parTable = $(this).parents("table");
		var ck = $(this).prop("checked");
		parTable.find("tbody tr").each(function(){
			if(ck){
				$(this).addClass("active");
			}else{
				$(this).removeClass("active");
			}
		});
	});*/
	
	//判断是否全选
	/*$("body").on("change","input[type='checkbox']",function(){
		//判断$(this)的父元素是否是td，
		if($(this).parent().is("td")){
			isCheckAll(this);
			if($(this).prop("checked")){
				$(this).parents("tr").addClass("active");
			}else{
				$(this).parents("tr").removeClass("active");
			}
		}
	});*/
});

//页面重新渲染
function resizeLayOut(){
	
}
//更多搜索是否自动展开
function searchDialogAutoOpen(){
	var mark = false;
	$(".searchDialog .searchForms").each(function(){
		var val = $.trim($(this).find("select:not('.jq-ignore'),input:not('.jq-ignore')").val());
		/*if( val && val != "-1"){*/
		if( val ){	
			mark = true;
			return false;
		}
	});
	if(mark){
		$(".searchMore").children(".glyphicon").toggleClass("glyphicon-minus");
		$(".searchDialog").show(function(){
			//重置页面布局
			resizeLayOut();
		});
	}
}

$(function(){
	//更多搜索是否自动展开
	searchDialogAutoOpen();
});
//全选 方法
function checkAll(obj){
	var parTable = $(obj).parents("table");
	var isCheck = $(obj).prop("checked");
	$("tbody tr",parTable).each(function(){
		$("td:first input[type='checkbox']",this).prop("checked",isCheck);
	});
};
// tbody中 判断是否 全选
function isCheckAll(obj){
	var parTable = $(obj).parents("table");
	if(!$(obj).prop("checked")){//未选中
		if(parTable.parent().hasClass("table_wrap")){
			parTable.parent().find(".th_t:first input[type='checkbox']").prop("checked",false);	
		}
		$("thead tr:first th:first input[type='checkbox']",parTable).prop("checked",false);
	}else{//已选中
		var mark = true;
		parTable.find("tbody tr").each(function(){
			if(!$(this).find("td:first input[type='checkbox']").prop("checked")){
				mark = false;
				return false;
			}
		});
		if(parTable.parent().hasClass("table_wrap")){
			parTable.parent().find(".th_t:first input[type='checkbox']").prop("checked",mark);								
		}
		$("thead tr:first th:first input[type='checkbox']",parTable).prop("checked",mark);
	}
};

//判断是否有选中项
function isHasChecked(obj){
	  var mark = false;
	  $(obj).find("tbody tr").each(function(){
		 if($(this).find("td:first input[type='checkbox']").prop("checked")){
			mark = true;
		}
	  });
	  return mark;
}

//登陆注册页居中
function loginWrapInit(){
	//IE8，9 居中
	if(getBrowerType() == "IE8" || getBrowerType() == "IE9" || getBrowerType() == "Safari"){
		var win_w = $(window).width();
		var win_h = $(window).height();
		var con_w = $(".loginCon").width() || $(".regCon").width();
		var h = $(".loginBox").height();
		var bh = (win_h - h) / 2;
		var conw = (win_w - con_w) / 2;
		bh = bh>0?bh:0;
		conw = conw>0?conw:0;
		$(".loginBox").css("margin-top",bh);
		$(".loginBox").css("margin-left",conw);
	}
}


/**
 * 单时间插件
 * 需要引入时间插件datarangepicker和响应的其他插件
 * html模版
 * 	<div class="timeWarper">
			<div class="input-group">
			  <input type="text" class="timer form-control" readonly="readonly" value="2010-01-01">
			  <span class="input-group-addon timerClear"><i class="glyphicon glyphicon-remove"></i></span>
			</div>
		</div>
 */
function singleTimer(){
	$(".timer").each(function(){
		var self = $(this);
		self.daterangepicker({
			minDate: '2010-01-01',
			maxDate: '2025-12-31',
			startDate:function(){
				return (self.val() != "")?self.val():getYMD();
			}(),
			opens:"right",
			singleDatePicker:true,
			showDropdowns:true
		});
	})
	//清空时间
	$(".timerClear").on("click",function(){
		$(this).siblings("input.form-control").val("");
	})
};
function singleTimerYear(){
	$(".timer").each(function(){
		var self = $(this);
		self.daterangepicker({
			minDate: '2010-01-01',
			maxDate: '2025-12-31',
			format: 'YYYY',
			startDate:function(){
				return (self.val() != "")?self.val():getYMD();
			}(),
			opens:"right",
			singleDatePicker:true,
			showDropdowns:true
		});
	})
	//清空时间
	$(".timerClear").on("click",function(){
		$(this).siblings("input.form-control").val("");
	})
};
/**
 * 单时间插件
 * 需要引入时间插件datarangepicker和响应的其他插件
 * html模版
 * 	<div class="timeWarper">
			<div class="input-group">
			  <input type="text" class="timer2 form-control" readonly="readonly" value="2010-01-01">
			  <span class="input-group-addon timerClear"><i class="glyphicon glyphicon-remove"></i></span>
			</div>
		</div>
 */
function singleTimer2(){
	$(".timer2").each(function(){
		var self = $(this);
		self.daterangepicker({
			minDate: '2010-01-01',
			maxDate: '2025-12-31',
			timePicker: true,
			timePickerIncrement:1,
			timePicker12Hour:false,
			startDate:function(){
				return (self.val() != "")?self.val():getYMD();
			}(),
			opens:"right",
			singleDatePicker:true,
			showDropdowns:true
		});
	})
	//清空时间
	$(".timerClear").on("click",function(){
		$(this).siblings("input.form-control").val("");
	})
};


//修改记录中，数目多于3条出现 “更多”按钮，并绑定事件
function moreFormFooterRecord(){
  	//修改记录
  	if($(".ff_con").find(".ff_item").length>3){
		$(".ff_more").show();
		$(".ff_more").on("click",function(){
  			$.MaxDialog({
  				"title":"更多操作记录",
  				"type":"alert",
  				"width":"80%",
  				"height":"80%",
  				"content":$(".ff_con").html()
  			});
  		});
	}
  }

//新增编辑页的界面操作。
function maxModalIframe(h){
	$(".maxModalIframeCon").height($("body").outerHeight() - $(".maxModalIframe").outerHeight() - 12 - (h || 0));
}

//根据表单属性data-maxLength设定的值，判断是否超出设定的字符长度
$(function(){
	dataMaxLengthLimit();
});

function dataMaxLengthLimit(){
	$("body").on("keyup","input[data-maxlength],textarea[data-maxlength]",function(){
		var maxLength = $(this).data("maxlength");
		var value = $(this).val();
		var realLength = 0;
		var charCode = "";
		for(var i = 0;i<value.length;i++){
			charCode = value.charCodeAt(i);
			if(charCode >=0 && charCode<=128){
				realLength += 1;
			}else{
				realLength += 2;
			}
			if(realLength>maxLength){
				$(this).val(value.substring(0,i));
				
				return;
			}
		}
	});
};


//自定义事件
/*
	userEvent(shiroName,cb);//自定义事件函数

	shiroName:shiroName的权限名，如：event:add
	
	cb:可自定义函数名，不传请覆写eventFunc函数
		function eventFunc(){函数体...}
	
	若想传后面的参数，前面的参数必需传递，否则出错	
*/
function userEvent(str,cb){
	var pathname = top.basePathes || parent.basePathes || self.basePathes ;
	$.ajax({
		type: "POST",
		url: pathname+"/eventController/getEventData.do",
		data: {shiroName:str},
		dataType: "json",
		success: function(data){
			if (data.success) {
				//执行sql
				switch(data.result) {
				case '1'://只要有返回信息就不允许通过
					if (data.triggersql) {
						$.MaxDialog({
							"title":"通知",
							"type":"tips",
							"content":data.triggersql,
							"time":2,
							"hideBefore":function(){}
						});
						return false;
					} else {
						if(cb){
							cb();
						}else{
							eventFunc();
						}
					}
					break;
				case '2'://无论有无返回信息均可通过
					if(cb){
						cb();
					}else{
						eventFunc();
					}
					break;
				case '3'://按用户选择结果决定是否通过
					if (data.triggersql) {
						$.MaxDialog({
							"title":"提示",
							"type":"confirm",
							"content":data.triggersql,
							"buttons":[
										{
											"text":"确定",
											"callback":function(){
												if(cb){
													cb();
												}else{
													eventFunc();
												}
											},
								    	},{
											"text":"取消",
											"type":"Mcancel",
											"callback":function(){
												//alert("我是取消按钮的回调函数，我没有return false时，关闭模态框");
												//return false时，不关闭模态框
												//return;
											}
										}
									]
						});
					} else {
						if(cb){
							cb();
						}else{
							eventFunc();
						}
					}
					break;
				}
			}else{
				if(cb){
					cb();
				}else{
					eventFunc();
				}
			}
		},
		error: function(){			
		}
    });
}
function eventFunc(){
	//console.log("请覆写eventFunc函数...")
};

function JSONLength(obj) {
	var size = 0, key;
	for (key in obj) {
		if (obj.hasOwnProperty(key)) size++;
	}
	return size;
};

//表格中某行含有span.nullify的作废的数据时，改行添加nullifyTr的样式类，如果该行中的按钮含有 审核 ，则该按钮变灰。
//jdom为表格对应的jquery对象或dom；
function nullify(jdom){
	$(jdom).find("tbody tr").each(function(m){
		if($(this).find("span.nullify").length){
			$(this).addClass("nullifyTr");
			$(this).find("button.btn").each(function(n){
				if($(this).text().indexOf("审核") != "-1"){
					$(this).addClass("btn-none").removeAttr("onclick");
				}
			})
		}
	});
};

//获取dom或jquery对象的高度
function getDomH(jdom){
	return $(jdom).outerHeight() || 0;
};

//表格自适应，
/*
 * variable 为tableInit创建的对象
 * jdom 为表格对应的jdom对象或dom对象
 * height 为表格的高度，可不传
 * */
function initTableHeight(variable,jdom,height,jdom1,rage){
	if(!variable){
		return;
	}
//	alert(getDomH($(jdom1)))
	var h = height || ($("body").outerHeight() -  getDomH($("#foot_page")) - getDomH($(".maintop")) - getDomH($(".maintop_view")) - getDomH($(".formHeader")) - getDomH($(".maxModalIframe"))  - getDomH($(jdom1)) - 12 - (rage ? rage : 0));
	if($(jdom).parent().outerWidth() - $("body").outerWidth() > 0){
  		variable.reflesh(h-15);
	}else{
		variable.reflesh(h);
	}
	$(window).on('resize',function(){
		h = height || ($("body").outerHeight() -  getDomH($("#foot_page")) - getDomH($(".maintop")) - getDomH($(".maintop_view")) - getDomH($(".formHeader")) - getDomH($(".maxModalIframe"))  - getDomH($(jdom1)) - 12 - (rage ? rage : 0));
		if($(jdom).parent().outerWidth() - $("body").outerWidth() > 0){
	  		variable.reflesh(h-15);
		}else{
			variable.reflesh(h);
		}
	});
};
//设定表格的父元素orderBox的高度
function initOrderBoxHeight(height,jdom1,rage){
	var h = height || ($("body").outerHeight() -  getDomH($("#foot_page")) - getDomH($(".maintop")) - getDomH($(".maintop_view")) - getDomH($(".formHeader")) - getDomH($(".maxModalIframe")) - getDomH($(jdom1)) - 12 - (rage ? rage : 0));
	$(".orderBox").css("height",h);
	$(window).on('resize',function(){
		h = height || ($("body").outerHeight()  - getDomH($("#foot_page"))  - getDomH($(".maintop")) - getDomH($(".maintop_view")) - getDomH($(".formHeader")) - getDomH($(".maxModalIframe"))  - getDomH($(jdom1)) - 12 - (rage ? rage : 0));
		$(".orderBox").css("height",h);
	});
};

//设定搜索的宽度
function initSearchBoxWidth(){
	$("#searchBox").width(function(){
		return $(window).outerWidth() - $(".maintopmenu").outerWidth() - $(".maintit").outerWidth() - 16;
	});
	$(window).on("resize",function(){
		$("#searchBox").width(function(){
			return $(window).outerWidth() - $(".maintopmenu").outerWidth() - $(".maintit").outerWidth() - 16;
		});
	})
}
/**
 * 选择打印模板
 */
var printParam = "";
function selectPrintTemplate(printParam) {
	var pathname = top.basePathes || parent.basePathes || self.basePathes ;
		top.diag = $.MaxDialog({
		"width":1024,
		"height":768,
		"title":"打印模板",
		"type":"iframe",
		"isFooter":false,
		"url":pathname+"/printController/getPrintDateSource.do?" + printParam,
		"hideBefore":function(obj){	
		}
	})
};

//设置某个Id的值，在不同的iframe中设定
function setIframeContentsValById(id){
	$('iframe', top.document).each(function(n){
		if($(this.contentWindow.document.body).find("#"+id).length){
			this.contentWindow.document.getElementById( id ).value = 1;
		}
	});
};

//控制按钮组的显示情况，当绑定 了onclick事件则不改变按钮颜色，未绑定了事件则显示为灰色，且不可操作；
$(function(){
	buttonAddBtnNone();
});
function buttonAddBtnNone(){
	$(".maxToolButton button").each(function(){
		if(!$(this).attr("onclick")){
			$(this).addClass("btn-none");
		}
	});
};

//单据表头的折叠与展开。
/*	
 * 	<li class="tbtn">
 * 		<button type="button" class="btn btn-sm btn-info" onclick="showHeaderInfo(this);">
 * 			<i class="glyphicon glyphicon-plus mr3"></i>
 * 			<span>更多表头信息</span>
 * 		</button>
 * 	</li>
 * 	需给formHeader 加上formHeader_lh26的样式类，限定formHeader_l的初始高度为26px
 * */
function showHeaderInfo(obj){
	if($.trim($(obj).text()) == "更多表头信息"){
		$(obj).text("收起表头信息");
		$(".formHeader_l").css({
			"height":"auto"
		});
	}else{
		$(obj).text("更多表头信息");
		$(".formHeader_l").css({
			"height":26
		});
	}
	//重置页面布局
	resizeLayOut();
};

//折叠父窗口的左侧栏和项目名称登陆信息等
/*
 * 点击左侧菜单栏时，页面调用的方法
 * mark 为true时，折叠项目名称登陆信息
 * mark 为false时，不折叠
 * */
function switchChange(mark){
	/*
	<!-- 记录该页标记，是否在主框架的菜单栏折叠时，是否折叠项目名称登陆等信息； -->
	<input type="hidden" id="mainIframeMark" value="1" />
	*/
	$("body").append('<input type="hidden" id="mainIframeMark" value="1" />');
	//主框架折叠左侧栏
	(top.switch_Sbtn(mark));
};

/*
<td class="vieworderdtl">
	<a href="javascript:void(0);" onclick="viewOrderDtl('${order.out_no}');">${order.out_no}</a>
</td>
*/
/* 当单号为多个时，且以“，”分隔时，需要单独点击操作，分隔切换成a标签包裹；需给td标签添加vieworderdtl样式类 */
function initvieworderdtl(){
	$(".vieworderdtl").each(function(){
		var val = $(this).text();
		var arr = val.split(",");
		var len = arr.length-1;
		var html = "";
		for(var i=0;i<len;i++){
			var text = $.trim(arr[i]);
			if(i==len-1){
				html += "<a href=\"javascript:void(0);\" onclick=\"viewOrderDtl('"+text+"');\">"+text+"</a>";	
			}else{
				html += "<a href=\"javascript:void(0);\" onclick=\"viewOrderDtl('"+text+"');\">"+text+"</a>,";	
			}
		}
		$(this).html("").append(html);
	});
}


//错误的时候显示错误提示框 error时的提示

function showError(msg,cb){
	$.MaxDialog({
		"title":"通知",
		"type":"alert",
		"content":msg || "操作失败，请重试或联系管理员",
		"hideBefore":function(){
			cb&&cb();
		}
	});
}

function showTip(msg,time){
	$.MaxDialog({
		"title":"通知",
		"type":"tips",
		"content":msg || "请输入提示内容！",
		"time": time || 2
	});
}

//文本框只允许输入整数或小数（正数）
//obj:文本框
function onlyInputDecimal( dom )
{
	dom.value = dom.value.replace(/[^\d.]/g,"");  			//清除“数字和.”以外的字符  
 	dom.value = dom.value.replace(/^\./g,"");  				//验证第一个字符是数字而不是. 
	dom.value = dom.value.replace(/^0[\d]{1,}/g,'');     	//验证零开头的长度大于2，则清空
	dom.value = dom.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); //只保留第一个. 清除多余的. 
}
//非空判断
function isNull(variable1){
	if (variable1 == null || variable1 == undefined || variable1 == '') { 
		return true;
		}else{
			return false;
			
		} 
}
//数字判断
function isNum(str){
	var reg = /^[0-9]+.?[0-9]*$/;
	if(!reg.exec(str))  {
		   return false;  
	}else{
		return true;
	}  
}
//手机号码判断
function isPhone(str){
	 var re = /^1\d{10}$/;
	    if (re.test(str)) {
	    	return true;
	    } else {
	    	 return false;  
	    }
}
//电话号码判断
function isTel(str){
	 	var re = /0\d{2,3}-\d{7,8}/;
	    if (re.test(str)) {
	    	return true;
	    } else {
	    	 return false;  
	    }
}
//年龄判断
function isNum2(str){
	var num=parseFloat(str);
    if (num<100&&num>0) {
    	return true;
    } else {
    	 return false;  
    }
}
//年份判断
function isYear(obj){
	    var re = /^[0-9]+[0-9]*[0-9]*$/ ; 
	   if(!re.test(obj) || obj.length != 4){ 
          return false; 
       }else{
    	   return true;
       } 
	  /* if(!/^\d{4}$/.test(obj)){
	       return false;
	   }else{
		   return true;
	   }*/
}
//获取url中的参数值
function getUrl() {
	  var url = location.search; //获取url中"?"符后的字串
	  var theRequest = new Object();
	  if (url.indexOf("?") != -1) {
	    var str = url.substr(1);
	    strs = str.split("&");
	    for(var i = 0; i < strs.length; i ++) {
	      theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
	    }
	  }
	  return theRequest;
	}
//ajax请求
function postAjax(url,params,callback){
	$.ajax({     
        type: "POST",
        url:url,
        data:params,       
        error: function() {
        	alert("服务器异常");
        },
        success: function(data) {
        	if (data.success){
        		callback(data);
        	}else{
				$.MaxDialog({
					"title":"通知",
					"type":"tips",
					"content":data.msg,
					"time":2
				});
			}
        }
    });
}
function formAjax(url,formId,callback){
	/* start */
	$.ajax({
         type: 'post',
         url: url,
         data: new FormData($(formId)[0]),
         contentType: false,
         processData: false,
         error: function() {
         	alert("服务器异常");
         },
         success: function(data) {
        	 if (data.success){
        		 callback(data);
 			}else{
 				 $.MaxDialog({
     				"title":"通知",
     				"type":"tips",
     				"content":data.msg,
     				"time":2
     		  	 });	
 			}
         }
     });
  	/* end */	
}
//下拉框搜索初始化
$(function() {
	//console.log($(".sel2search").length);
	if($(".sel2search").length>0){
		 $(".sel2search").select2();
	}
});